﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GestionePolveriLib.BL.Reports
{
    public class QuickReportInfoItem
    {
        public int ID { get; set; }
        public string Applicazione { get; set; }
        public IEnumerable<FamigliaColore> Famiglie { get; set; }
        public IEnumerable<Impianto> Impianti { get; set; }
        public string Descrizione { get; set; }
        public DateTime? DateFrom { get; set; }
        public DateTime? DateTo { get; set; }

        public QuickReportInfoItem()
        {
            Impianti = new List<Impianto>();
            Famiglie = new List<FamigliaColore>();
        }

        public override string ToString()
        {
            string impName = string.Empty;
            impName = GetDescrizioneImpianti();

            string famDescrizioni = string.Empty;
            famDescrizioni = GetDescrizioneFamiglie();

            string retValue = string.Format("Famiglia: {0}; Impianti: {1}; Tipo: {2}; Descr.: {3}; Dal: {4:d} al {5:d}",
                                             famDescrizioni, impName, this.Applicazione, 
                                             this.Descrizione, this.DateFrom.GetValueOrDefault(), this.DateTo.GetValueOrDefault());

            return retValue;
        }

        public string GetImpianti()
        {
            string retValue = string.Empty;

            if (this.Impianti.Count() > 0)
            {
                foreach (Impianto imp in this.Impianti)
                {
                    retValue += imp.ID + ",";
                }

                retValue = retValue.Trim();
                retValue = retValue.Substring(0, retValue.Length - 1);
            }

            return retValue;
        }

        public string GetDescrizioneImpianti()
        {
            string retValue = string.Empty;

            if (this.Impianti.Count() > 0)
            {
                foreach (Impianto imp in this.Impianti)
                {
                    retValue += imp.Nome.Trim() + " + ";
                }

                //retValue = retValue.Trim();
                retValue = retValue.Substring(0, retValue.LastIndexOf(" + "));
            }

            return retValue;
        }

        public string GetFamiglie()
        {
            string retValue = string.Empty;

            if (this.Famiglie.Count() > 0)
            {
                foreach (FamigliaColore fam in this.Famiglie)
                {
                    retValue += fam.ID + ",";
                }

                retValue = retValue.Trim();
                retValue = retValue.Substring(0, retValue.Length - 1);
            }

            return retValue;
        }

        public string GetDescrizioneFamiglie()
        {
            string retValue = string.Empty;

            if (this.Famiglie.Count() > 0)
            {
                foreach (FamigliaColore fam in this.Famiglie)
                {
                    retValue += fam.Descrizione.Trim() + " + ";
                }

                //retValue = retValue.Trim();
                retValue = retValue.Substring(0, retValue.LastIndexOf(" + "));
            }

            return retValue;
        }
    }
}
